From 71d7a1b3d013a17c6d8a326fb9e00ee96e69b37f Mon Sep 17 00:00:00 2001 From: Daniel Boles Date: Fri, 20 Jan 2017 22:15:42 +0000 Subject: [PATCH] =?utf8?q?menushell:=20Don=E2=80=99t=20dereference=20befor?= =?utf8?q?e=20typechecking?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- gtk/gtkmenushell.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index 20a36a2891..b8b3e6bd2d 100644 --- a/gtk/gtkmenushell.c +++ b/gtk/gtkmenushell.c @@ -1196,12 +1196,13 @@ void gtk_menu_shell_select_item (GtkMenuShell *menu_shell, GtkWidget *menu_item) { - GtkMenuShellPrivate *priv = menu_shell->priv; + GtkMenuShellPrivate *priv; GtkMenuShellClass *class; g_return_if_fail (GTK_IS_MENU_SHELL (menu_shell)); g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); + priv = menu_shell->priv; class = GTK_MENU_SHELL_GET_CLASS (menu_shell); if (class->select_item && @@ -1263,10 +1264,12 @@ gtk_menu_shell_real_select_item (GtkMenuShell *menu_shell, void gtk_menu_shell_deselect (GtkMenuShell *menu_shell) { - GtkMenuShellPrivate *priv = menu_shell->priv; + GtkMenuShellPrivate *priv; g_return_if_fail (GTK_IS_MENU_SHELL (menu_shell)); + priv = menu_shell->priv; + if (priv->active_menu_item) { gtk_menu_item_deselect (GTK_MENU_ITEM (priv->active_menu_item)); @@ -1793,11 +1796,13 @@ void _gtk_menu_shell_set_grab_device (GtkMenuShell *menu_shell, GdkDevice *device) { - GtkMenuShellPrivate *priv = menu_shell->priv; + GtkMenuShellPrivate *priv; g_return_if_fail (GTK_IS_MENU_SHELL (menu_shell)); g_return_if_fail (device == NULL || GDK_IS_DEVICE (device)); + priv = menu_shell->priv; + if (!device) priv->grab_pointer = NULL; else if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) @@ -1869,10 +1874,12 @@ void gtk_menu_shell_set_take_focus (GtkMenuShell *menu_shell, gboolean take_focus) { - GtkMenuShellPrivate *priv = menu_shell->priv; + GtkMenuShellPrivate *priv; g_return_if_fail (GTK_IS_MENU_SHELL (menu_shell)); + priv = menu_shell->priv; + if (priv->take_focus != take_focus) { priv->take_focus = take_focus; -- 2.30.2